home *** CD-ROM | disk | FTP | other *** search
- /*
- // Pic.cc -- pic$@%U%)!<%^%C%H2hA|$r07$&(J
- //
- // created in 3/1/1993
- // revised in 2/13/1994
- */
-
- #ifndef _PIC_H_
- #define _PIC_H_
-
- #include "defs.h"
-
- #define PicBitWrite(Size,Value) {\
- int ii, Rest, Cache;\
- Rest = Size;\
- Cache = Value;\
- Cache <<= 32 - Rest;\
- while ( Rest > BitLength ) {\
- for ( ii = 0; ii < BitLength; ii++ ) {\
- *BitBufferPointer = *BitBufferPointer + *BitBufferPointer + (Cache < 0);\
- Cache = Cache + Cache;\
- Rest--;\
- }\
- PicWriteBufferNext();\
- }\
- for ( ii = 0; ii < Rest; ii++ ) {\
- *BitBufferPointer = *BitBufferPointer + *BitBufferPointer + (Cache < 0);\
- Cache = Cache + Cache;\
- BitLength--; } }
-
- #define PicBitLoad(Size) {\
- int ii, Rest;\
- PicWord = 0;\
- Rest = Size;\
- while ( Rest > BitLength ) {\
- for ( ii = 0; ii < BitLength; ii++ ) {\
- PicWord <<= 1;\
- if ( *BitBufferPointer & 0x80 )\
- PicWord++;\
- *BitBufferPointer <<= 1;\
- Rest--;\
- }\
- PicBufferNext();\
- }\
- for ( ii = 0; ii < Rest; ii++ ) {\
- PicWord <<= 1;\
- if ( *BitBufferPointer & 0x80 )\
- PicWord++;\
- *BitBufferPointer <<= 1;\
- BitLength--; } }
-
- extern void PicLoad();
- extern void PicSave();
- extern void PicBufferNext();
- extern void PicBufferWriteFlush();
- extern void PicWriteBufferNext();
- extern void PicMarkClear();
-
- extern unsigned char *BitBufferPointer;
- extern int NoExpand;
- extern uint32 PicWord;
- extern unsigned char *Mark;
- extern int32 PicRadix;
-
- #endif /* _PIC_H_ */
-